↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
G_IN_A(W) → U1_A(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
G_IN_A(W) → EQ_IN_AG(X, .(.(a, []), .(.(R, []), [])))
U1_A(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_A(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U1_A(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → EQ_IN_AG(Y, .(.(S, .(c, [])), .([], [])))
U2_A(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_A(W, app_1_in_gga(X, Y, Z))
U2_A(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → APP_1_IN_GGA(X, Y, Z)
APP_1_IN_GGA(.(X, Xs), Ys, .(X, Zs)) → U6_GGA(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
APP_1_IN_GGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → U6_AGA(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
U3_A(W, app_1_out_gga(X, Y, Z)) → U4_A(W, eq_in_gg(Z, .(U, V)))
U3_A(W, app_1_out_gga(X, Y, Z)) → EQ_IN_GG(Z, .(U, V))
U4_A(W, eq_out_gg(Z, .(U, V))) → U5_A(W, app_2_in_aaa(U, U, W))
U4_A(W, eq_out_gg(Z, .(U, V))) → APP_2_IN_AAA(U, U, W)
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U7_AAA(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_2_IN_AAA(Xs, Ys, Zs)
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
G_IN_A(W) → U1_A(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
G_IN_A(W) → EQ_IN_AG(X, .(.(a, []), .(.(R, []), [])))
U1_A(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_A(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U1_A(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → EQ_IN_AG(Y, .(.(S, .(c, [])), .([], [])))
U2_A(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_A(W, app_1_in_gga(X, Y, Z))
U2_A(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → APP_1_IN_GGA(X, Y, Z)
APP_1_IN_GGA(.(X, Xs), Ys, .(X, Zs)) → U6_GGA(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
APP_1_IN_GGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → U6_AGA(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
U3_A(W, app_1_out_gga(X, Y, Z)) → U4_A(W, eq_in_gg(Z, .(U, V)))
U3_A(W, app_1_out_gga(X, Y, Z)) → EQ_IN_GG(Z, .(U, V))
U4_A(W, eq_out_gg(Z, .(U, V))) → U5_A(W, app_2_in_aaa(U, U, W))
U4_A(W, eq_out_gg(Z, .(U, V))) → APP_2_IN_AAA(U, U, W)
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U7_AAA(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_2_IN_AAA(Xs, Ys, Zs)
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_2_IN_AAA(Xs, Ys, Zs)
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_2_IN_AAA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PrologToPiTRSProof
APP_2_IN_AAA → APP_2_IN_AAA
APP_2_IN_AAA → APP_2_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PrologToPiTRSProof
APP_1_IN_AGA(Ys) → APP_1_IN_AGA(Ys)
APP_1_IN_AGA(Ys) → APP_1_IN_AGA(Ys)
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
G_IN_A(W) → U1_A(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
G_IN_A(W) → EQ_IN_AG(X, .(.(a, []), .(.(R, []), [])))
U1_A(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_A(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U1_A(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → EQ_IN_AG(Y, .(.(S, .(c, [])), .([], [])))
U2_A(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_A(W, app_1_in_gga(X, Y, Z))
U2_A(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → APP_1_IN_GGA(X, Y, Z)
APP_1_IN_GGA(.(X, Xs), Ys, .(X, Zs)) → U6_GGA(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
APP_1_IN_GGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → U6_AGA(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
U3_A(W, app_1_out_gga(X, Y, Z)) → U4_A(W, eq_in_gg(Z, .(U, V)))
U3_A(W, app_1_out_gga(X, Y, Z)) → EQ_IN_GG(Z, .(U, V))
U4_A(W, eq_out_gg(Z, .(U, V))) → U5_A(W, app_2_in_aaa(U, U, W))
U4_A(W, eq_out_gg(Z, .(U, V))) → APP_2_IN_AAA(U, U, W)
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U7_AAA(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_2_IN_AAA(Xs, Ys, Zs)
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
G_IN_A(W) → U1_A(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
G_IN_A(W) → EQ_IN_AG(X, .(.(a, []), .(.(R, []), [])))
U1_A(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_A(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U1_A(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → EQ_IN_AG(Y, .(.(S, .(c, [])), .([], [])))
U2_A(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_A(W, app_1_in_gga(X, Y, Z))
U2_A(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → APP_1_IN_GGA(X, Y, Z)
APP_1_IN_GGA(.(X, Xs), Ys, .(X, Zs)) → U6_GGA(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
APP_1_IN_GGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → U6_AGA(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
U3_A(W, app_1_out_gga(X, Y, Z)) → U4_A(W, eq_in_gg(Z, .(U, V)))
U3_A(W, app_1_out_gga(X, Y, Z)) → EQ_IN_GG(Z, .(U, V))
U4_A(W, eq_out_gg(Z, .(U, V))) → U5_A(W, app_2_in_aaa(U, U, W))
U4_A(W, eq_out_gg(Z, .(U, V))) → APP_2_IN_AAA(U, U, W)
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U7_AAA(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_2_IN_AAA(Xs, Ys, Zs)
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_2_IN_AAA(Xs, Ys, Zs)
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
APP_2_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP_2_IN_AAA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
APP_2_IN_AAA → APP_2_IN_AAA
APP_2_IN_AAA → APP_2_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
g_in_a(W) → U1_a(W, eq_in_ag(X, .(.(a, []), .(.(R, []), []))))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_a(W, eq_out_ag(X, .(.(a, []), .(.(R, []), [])))) → U2_a(W, X, eq_in_ag(Y, .(.(S, .(c, [])), .([], []))))
U2_a(W, X, eq_out_ag(Y, .(.(S, .(c, [])), .([], [])))) → U3_a(W, app_1_in_gga(X, Y, Z))
app_1_in_gga([], X, X) → app_1_out_gga([], X, X)
app_1_in_gga(.(X, Xs), Ys, .(X, Zs)) → U6_gga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
app_1_in_aga([], X, X) → app_1_out_aga([], X, X)
app_1_in_aga(.(X, Xs), Ys, .(X, Zs)) → U6_aga(X, Xs, Ys, Zs, app_1_in_aga(Xs, Ys, Zs))
U6_aga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_aga(.(X, Xs), Ys, .(X, Zs))
U6_gga(X, Xs, Ys, Zs, app_1_out_aga(Xs, Ys, Zs)) → app_1_out_gga(.(X, Xs), Ys, .(X, Zs))
U3_a(W, app_1_out_gga(X, Y, Z)) → U4_a(W, eq_in_gg(Z, .(U, V)))
eq_in_gg(X, X) → eq_out_gg(X, X)
U4_a(W, eq_out_gg(Z, .(U, V))) → U5_a(W, app_2_in_aaa(U, U, W))
app_2_in_aaa([], X, X) → app_2_out_aaa([], X, X)
app_2_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U7_aaa(X, Xs, Ys, Zs, app_2_in_aaa(Xs, Ys, Zs))
U7_aaa(X, Xs, Ys, Zs, app_2_out_aaa(Xs, Ys, Zs)) → app_2_out_aaa(.(X, Xs), Ys, .(X, Zs))
U5_a(W, app_2_out_aaa(U, U, W)) → g_out_a(W)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
APP_1_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP_1_IN_AGA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
APP_1_IN_AGA(Ys) → APP_1_IN_AGA(Ys)
APP_1_IN_AGA(Ys) → APP_1_IN_AGA(Ys)